The memory used by a processor to read and write data has a finite lifetime. Memory wear-out, permanent errors generating “stuck-at” bits, and transient errors from bits that inappropriately flip states can plague memory devices. In general, memory errors fall within one of two categories of errors. The first type of error is a hard error, which occurs due to a physical defect or other anomaly that corrupts bits in a repeatable manner. The second type of error is a soft error, which refers to non-permanent errors such as those caused by electromagnetic radiation.
Error detection and error correction schemes may be incorporated in computing systems at various levels to insulate software and data stored on memory devices from experiencing the errors occurring at the physical memory.